package 字节;


import java.util.Arrays;
import java.util.Scanner;

public class Main_1016_3 {
    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        int len=cin.nextInt();
        int n=cin.nextInt();
        int[][] cast=new int[n][2];
        for (int i = 0; i < n; i++) {
            cast[i][0]=cin.nextInt();
            cast[i][1]=cin.nextInt();
        }
        Arrays.sort(cast,(a,b)->{
            return b[0]-a[0];
        });
        int curL=200;
        if (len-cast[0][0]>curL){
            System.out.println("Impossible");
            return;
        }
        int index=0;
        while (index<n){
            int fast=index+1;
            int curCast=cast[index][1];
            int minCast=Integer.MAX_VALUE;//记录能到达的位置中最小的
            int nextminInde=index;
            while (fast<n&&cast[index][0]-cast[fast][0]<=curL){
                //遍历从当前位置能到达的所有位置，找到油价最小的地方
                if (minCast>cast[fast][1]){
                    minCast=cast[fast][1];
                    nextminInde=fast;
                }
                fast++;
            }

        }
    }
}
